#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/kthread.h>
#include <linux/module.h>
#include <linux/spinlock.h>

MODULE_LICENSE("GPL");

static int hog_thread(void *data) {
  static DEFINE_SPINLOCK(lock);
  unsigned long flags;

  printk(KERN_INFO "Hogging a CPU now\n");
  spin_lock_irqsave(&lock, flags);
  while (1)
    ;

  /* unreached */
  return 0;
}

static int __init hog_init(void) {
  kthread_run(&hog_thread, NULL, "hog");
  return 0;
}

module_init(hog_init);
MODULE_LICENSE("GPL v2"); // 表示模块代码接受的软件许可协议
MODULE_AUTHOR("www");     // 描述模块的作者信息
MODULE_DESCRIPTION("soft lock up module"); // 对模块的简单介绍
MODULE_ALIAS("soft_lock_up_module");       // 给模块设置一个别名